package ConnectivityEditor.UndoRedo;
import java.util.ArrayList;
import java.util.HashMap;
import Builder.BrickSelectionManager;
import Command.LDrawPart;
import Common.Matrix4;
import Connectivity.Connectivity;
import Connectivity.GlobalConnectivityManager;
import UndoRedo.IAction;
public class MoveConnectivityAction implements IAction {
private ArrayList<Connectivity> connList;
private HashMap<Connectivity, Matrix4> originalTransformMap;
private HashMap<Connectivity, Matrix4> newTransformMap;
public MoveConnectivityAction() {
connList = new ArrayList<Connectivity>();
originalTransformMap = new HashMap<Connectivity, Matrix4>();
newTransformMap = new HashMap<Connectivity, Matrix4>();
}
public void addMoveConnectivity(Connectivity conn, Matrix4 originalTransform,
Matrix4 newTransform) {
connList.add(conn);
originalTransformMap.put(conn, originalTransform);
newTransformMap.put(conn, newTransform);
}
@Override
public void undoAction() {
// System.out.println("undo");
for (Connectivity conn : connList){
conn.setTransformMatrix(originalTransformMap.get(conn));
conn.updateConnectivityOrientationInfo();
}
GlobalConnectivityManager.getInstance().updateMatrixAll();
BrickSelectionManager.getInstance()
.updateScreenProjectionVerticesMapAll();
}
@Override
public void redoAction() {
// System.out.println("redo");
for (Connectivity conn : connList){
conn.setTransformMatrix(newTransformMap.get(conn));
conn.updateConnectivityOrientationInfo();
}
}
}